package com.ruoyi.biz.mapper;

import java.math.BigDecimal;
import java.util.List;
import com.ruoyi.biz.domain.BizSubmitWork;
import com.ruoyi.biz.domain.BizWork;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * 作业提交Mapper接口
 * 
 * @author lhb
 * @date 2025-02-24
 */
public interface BizSubmitWorkMapper 
{

    /*
    * 一键退回，根据作业id和限制的查重率来删除提交的作业
    * */
    @Delete("delete from biz_submit_work where work_id = #{workId} and duplicate_checking_rate > #{rate}")
    public void deleteByWorkIdAndRate(@Param("rate")BigDecimal rate , @Param("workId")Long workId);

    /*
    * 根据作业id查询所有的作业提交列表
    * */
    @Select("select * from biz_submit_work where work_id = #{workId}")
    public List<BizSubmitWork> selectAllByWorkId(Long workId);


    /*
     * 根据id数组查询作业提交列表
     * */
    public List<BizSubmitWork> selectByIdArr(@Param("ids") Long[] ids);

    /*
    * 根据作业id和学生id查询作业提交
    * */
    public BizSubmitWork selectByWorkIdAndStudentId(@Param("workId") Long workId, @Param("studentId") Long studentId);

    /**
     * 查询作业提交
     * 
     * @param id 作业提交主键
     * @return 作业提交
     */
    public BizSubmitWork selectBizSubmitWorkById(Long id);

    /**
     * 查询作业提交列表
     * 
     * @param bizSubmitWork 作业提交
     * @return 作业提交集合
     */
    public List<BizSubmitWork> selectBizSubmitWorkList(BizSubmitWork bizSubmitWork);

    /**
     * 新增作业提交
     * 
     * @param bizSubmitWork 作业提交
     * @return 结果
     */
    public int insertBizSubmitWork(BizSubmitWork bizSubmitWork);

    /**
     * 修改作业提交
     * 
     * @param bizSubmitWork 作业提交
     * @return 结果
     */
    public int updateBizSubmitWork(BizSubmitWork bizSubmitWork);

    /**
     * 删除作业提交
     * 
     * @param id 作业提交主键
     * @return 结果
     */
    public int deleteBizSubmitWorkById(Long id);

    /**
     * 批量删除作业提交
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBizSubmitWorkByIds(Long[] ids);
}
